import store from '@/store/index.js'
const api = 'https://api.honbiao.com/'; // 客户服务器地址
// const api = 'https://hongbiao.zanboon.com/'; // 掌邦服务器地址
// wx2331c2b16bf56c36
// const api = 'https://www.hongbiao.com/'; // 服务器地址
// const api = 'https://hongbiao.zanboon.com/'; // 服务器地址
const http = (params) => {
	return new Promise((resolve, reject) => {
		//  传入的参数中含有isNoNeedLoading不需要加载中的提示
		if (!params.data.isNoNeedLoading) {
			uni.showLoading({
				mask: true,
				title: '加载中...',
			})
		}
		let needToken = true;
		params.data['token'] = store.getters.getToken
		// 排除不需要token的接口
		const whitelist = [
			'login/login/supplier_login',
			'login/login/mini_register',
			'login/login/supplier_register',
			'login/login/mini_login',
			'verify/verify_code/code',
			'login/login/update_password',
			'system/pop_up/get_user_agreement',
		]

		if (whitelist.includes(params.url)) {
			delete params.data.token
			needToken = false;
		}
		let netType = null
		// 获取网络状态
		uni.getNetworkType({
			success: (res) => {
				netType = res.networkType;
				
				if(netType === 'none') {
					reject()
					uni.hideLoading()
					uni.showToast({
						title:'网络未连接，请检查网络',
						icon:'none',
						duration:1500,
						mask:true
					})
					return false
				}
				
				// 单页测试时打开-=-=-= 开始
				// needToken = false  
				// if(!needToken) {
				// 	uni.showToast({
				// 		title: '现在正在进行单页测试，测试完成后记得关闭',
				// 		icon: 'none'
				// 	})
				// }
				// 单页测试时打开-=-=-= 结束
				
				// 没有token时则跳转到登录页面
				if (needToken && !params.data.token) {
					if(!params.data.isNoNeedLoading) {
						uni.hideLoading()
					}
					if(!uni.getStorageSync('nstorage_state')){
						return uni.reLaunch({
							url: '/pages/indexPage/login/login'
						})
						
					}else{
						return uni.reLaunch({
							url: '/pages/index/index/index.vue'
						})
					}
					
					
				} else {
					uni.request({
						url: api + params.url,
						data: params.data,
						header: params.header || {
							"Content-Type": "application/x-www-form-urlencoded"
						}, // 默认请求头，可自行设置
						method: params.method || 'post', // 请求格式默认为post，需要其他格式可自行设置
						dataType: params.dataType, // 小程序默认为json，可自行设置
						responseType: params.responseType, // 默认为text，可自行设置
						success: (res) => {
							if (res.statusCode === 200) {
								resolve(res.data)
							} else {
								uni.showToast({
									icon: 'none',
									title: res.data.message
								})
							}
							if (!params.data.isNoNeedLoading) {
								uni.hideLoading()
							}
						},
						fail: (e) => {
							reject(e)
							if (!params.data.isNoNeedLoading) {
								uni.hideLoading()
							}
						}
					})
				}
				
			}
		});
		
		
	})
}
module.exports = {
	http: http
}
